package org.ehe.erp.service.product;

import com.baomidou.mybatisplus.extension.service.IService;
import org.ehe.erp.domain.product.CodingRule;
import org.ehe.erp.domain.product.bo.CodingRuleBo;
import org.ehe.erp.domain.product.vo.CodingRuleVo;

import java.util.Collection;
import java.util.List;

/**
 * 编码规则服务接口
 * @author :zhangnn
 * @className :ICodingRuleService
 * @description: TODO
 * @date 2025-09-06 14:55:55
 */
public interface ICodingRuleService extends IService<CodingRule> {
    /**
     * 查询编码规则
     */
    CodingRuleVo queryById(Long id);

    /**
     * 查询编码规则列表
     */
    List<CodingRuleVo> queryList(CodingRuleBo bo);

    /**
     * 新增编码规则
     */
    Boolean insertByBo(CodingRuleBo bo);

    /**
     * 修改编码规则
     */
    Boolean updateByBo(CodingRuleBo bo);

    /**
     * 批量删除编码规则
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 验证编码规则唯一性
     */
    Boolean checkRuleUnique(CodingRuleBo bo);

    /**
     * 获取层级选项
     */
    List<Integer> getLevelOptions();

    /**
     * 预览编码效果
     */
    String previewCode(CodingRuleBo bo);
}
